非推奨の API は v2.5 以降削除されました
まとめ
Flutter に準拠して、非推奨ポリシー、 以降にサポートが終了した非推奨の API 2.5 安定版リリースは削除されました。
影響を受けるすべての API はこれにコンパイルされています 移行を支援する主要な情報源。あクイックリファレンスシートも利用可能です。
変更点
このセクションでは、影響を受けるクラスごとに非推奨をリストします。
autovalidate
のForm
& 関連クラス
Flutter Fixによるサポート: はい
autovalidate
v1.19 で非推奨になりました。
使用autovalidateMode
その代わり。
どこautovalidate
true だったので、次のように置き換えますAutovalidateMode.always
。
どこautovalidate
は false でした。次のように置き換えますAutovalidateMode.disabled
。
この変更により、元のバイナリを超えてより多くの動作を指定できるようになります。
選択、追加AutovalidateMode.onUserInteraction
追加オプションとして。
次のクラスはすべて、API に同じ変更があります。
Form
FormField
DropdownButtonFormField
TextFormField
移行ガイド
移行前のコード:
const Form form = Form(autovalidate: true);
const Form form = Form(autovalidate: false);
final autoMode = form.autovalidate;
const FormField formField = FormField(autovalidate: true);
const FormField formField = FormField(autovalidate: false);
final autoMode = formField.autovalidate;
const TextFormField textFormField = TextFormField(autovalidate: true);
const TextFormField textFormField = TextFormField(autovalidate: false);
const DropdownButtonFormField dropDownButtonFormField = DropdownButtonFormField(autovalidate: true);
const DropdownButtonFormField dropdownButtonFormField = DropdownButtonFormField(autovalidate: false);
移行後のコード:
const Form form = Form(autovalidateMode: AutovalidateMode.always);
const Form form = Form(autovalidateMode: AutovalidateMode.disabled);
final autoMode = form.autovalidateMode;
const FormField formField = FormField(autovalidateMode: AutovalidateMode.always);
const FormField formField = FormField(autovalidateMode: AutovalidateMode.disabled);
final autoMode = formField.autovalidateMode;
const TextFormField textFormField = TextFormField(autovalidateMode: AutovalidateMode.always);
const TextFormField textFormField = TextFormField(autovalidateMode: AutovalidateMode.disabled);
const DropdownButtonFormField dropDownButtonFormField = DropdownButtonFormField(autovalidateMode: AutovalidateMode.always);
const DropdownButtonFormField dropdownButtonFormField = DropdownButtonFormField(autovalidateMode: AutovalidateMode.disabled);
参考文献
API ドキュメント:
Form
FormField
TextFormField
DropdownButtonFormField
AutovalidateMode
関連する問題:
- 問題 56363
- 問題 18885
- 問題 15404
- 問題 36154
- 問題 48876
関連する PR:
- で廃止されました#59766
- に削除されました#90292
FloatingHeaderSnapConfiguration.vsync
Flutter Fix によるサポート: いいえ
のTickerProvider
vsync
の財産FloatingHeaderSnapConfiguration
だった
v1.19 で非推奨になりました。
のvsync
アニメーションの場合は、代わりに次を使用して指定する必要がありますSliverPersistentHeaderDelegate.vsync
。
移行ガイド
移行前のコード:
class MySliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate {
FloatingHeaderSnapConfiguration? get snapConfiguration => FloatingHeaderSnapConfiguration(vsync: myTickerProvider);
}
移行後のコード:
class MySliverPersistentHeaderDelegate extends SliverPersistentHeaderDelegate {
FloatingHeaderSnapConfiguration? get snapConfiguration => FloatingHeaderSnapConfiguration();
TickerProvider? get vsync => myTickerProvider;
}
参考文献
設計書:
- SliverPersistentHeader の showOnScreen 動作を制御する
API ドキュメント:
FloatingHeaderSnapConfiguration
SliverPersistentHeaderDelegate
TickerProvider
関連する問題:
- 問題 25507
関連する PR:
- で廃止されました#56413
- に削除されました#90293
AndroidViewController
とサブクラスid
Flutter Fixによるサポート: はい
のid
のAndroidViewController
、TextureAndroidViewController
、 とSurfaceAndroidViewController
、v1.20 で非推奨になりました。
これらすべてのユースケースについて、viewId
代わりに使用する必要があります。
移行ガイド
移行前のコード:
final SurfaceAndroidViewController surfaceController = SurfaceAndroidViewController(
viewId: 10,
viewType: 'FixTester',
layoutDirection: TextDirection.ltr,
);
int viewId = surfaceController.id;
final SurfaceAndroidViewController surfaceController = SurfaceAndroidViewController(
error: '',
);
final TextureAndroidViewController textureController = TextureAndroidViewController(
error: '',
);
final TextureAndroidViewController textureController = TextureAndroidViewController(
viewId: 10,
viewType: 'FixTester',
layoutDirection: TextDirection.ltr,
);
viewId = textureController.id;
移行後のコード:
final SurfaceAndroidViewController surfaceController = SurfaceAndroidViewController(
viewId: 10,
viewType: 'FixTester',
layoutDirection: TextDirection.ltr,
);
int viewId = surfaceController.viewId;
final SurfaceAndroidViewController surfaceController = SurfaceAndroidViewController(
error: '',
);
final TextureAndroidViewController textureController = TextureAndroidViewController(
error: '',
);
final TextureAndroidViewController textureController = TextureAndroidViewController(
viewId: 10,
viewType: 'FixTester',
layoutDirection: TextDirection.ltr,
);
viewId = textureController.viewId;
参考文献
設計書:
- flutterハイブリッド構成
API ドキュメント:
AndroidViewController
TextureAndroidViewController
SurfaceAndroidViewController
関連する問題:
- 問題 55218
関連する PR:
- で廃止されました#60320
- に削除されました#90294
BlacklistingTextInputFormatter
&WhitelistingTextInputFormatter
Flutter Fix によるサポート: いいえ
クラス全体BlacklistingTextInputFormatter
とWhitelistingTextInoutFormatter
v1.20 で非推奨になりました。
それらの機能は単一のクラスに書き直されました。FilteringTextInputFormatter
。
移行ガイド
移行前のコード:
formatter = BlacklistingTextInputFormatter(pattern, replacementString: 'replacedPattern');
formatter = BlacklistingTextInputFormatter.singleLineFormatter;
pattern = formatter.blacklistedPattern;
formatter = WhitelistingTextInputFormatter(pattern);
formatter = WhitelistingTextInputFormatter.digitsOnly;
pattern = formatter.whitelistedPattern;
移行後のコード:
formatter = FilteringTextInputFormatter.deny(pattern, replacementString: 'replacedPattern');
formatter = FilteringTextInputFormatter.singleLineFormatter;
pattern = formatter.filterPattern;
formatter = FilteringTextInputFormatter.allow(pattern);
formatter = FilteringTextInputFormatter.digitsOnly;
pattern = formatter.filterPattern;
参考文献
API ドキュメント:
FilteringTextInputFormatter
関連する PR:
- で廃止されました#59120
- に削除されました#90296
BottomNavigationBarItem.title
Flutter Fixによるサポート: はい
のtitle
のBottomNavigationBarItem
v1.19 で非推奨になりました。
のlabel
代わりにプロパティを使用する必要があります。この移行により、より良いサービスが可能になります
テキストのスケーリングと組み込みの機能Tooltip
のためのBottomNavigationBarItem
の文脈でBottomNavigationBar
。
移行ガイド
移行前のコード:
const BottomNavigationBarItem bottomNavigationBarItem = BottomNavigationBarItem(title: myTitle);
const BottomNavigationBarItem bottomNavigationBarItem = BottomNavigationBarItem();
bottomNavigationBarItem.title;
移行後のコード:
const BottomNavigationBarItem bottomNavigationBarItem = BottomNavigationBarItem(label: myTitle);
const BottomNavigationBarItem bottomNavigationBarItem = BottomNavigationBarItem();
bottomNavigationBarItem.label;
参考文献
設計書:
API ドキュメント:
BottomNavigationBarItem
BottomNavigationBar
Tooltip
関連する PR:
- で廃止されました#59127
- に削除されました#90295
packageRoot
のdart:core
、dart:isolate
、 とpackage:platform
次の API が削除されました。
-
Platform.packageRoot
のdart:core
-
Isolate.packageRoot
のdart:isolate
-
Platform.packageRoot
のpackage:platform
これらの API は非推奨としてマークされましたDart 2.0では、しませんでした どの Dart 2.x リリースでも正しく動作します。
移行ガイド
これらはpackageRoot
API は新しいセットに置き換えられました。packageConfig
API、
どちらに移行する必要があります。
-
Platform.packageConfig
のdart:core
-
Isolate.packageConfig
のdart:isolate
-
Platform.packageConfig
のpackage:platform
を使用している場合は、package:platform
パッケージの有無に関係なく、
あなたはを使用していますpackageRoot
API かどうかに関係なく、そのパッケージの古いバージョンは
Dart 2.16 以降とは、現在削除された に依存しているため互換性がありません。packageRoot
API。を実行しようとすると、次のようなエラーが表示される場合があります。
アプリ:
../../.pub-cache/hosted/pub.dartlang.org/platform-3.0.0/
lib/src/interface/local_platform.dart:46:19:
Error: Member not found: 'packageRoot'.
io.Platform.packageRoot; // ignore: deprecated_member_use
^^^^^^^^^^^
これを解決するには、バージョンをアップグレードしてください3.1.0
またはそれ以降package:platform
に
の制約をアップグレードするpubspec.yaml
ファイル:
dependencies:
platform: ^3.1.0
参考文献
関連する PR:
- Dart ライブラリから削除されました#47769
- から削除されました
package:platform
のPR #38 - 使用する Flutter を更新しました
package:platform
3.1.0インチPR #94603
タイムライン
安定版リリース: 2.10